package com.ruoyi.generator.service;

import com.ruoyi.common.enums.HtmlPageTypeEnum;
import com.ruoyi.generator.domain.model.FileGenInfo;
import org.apache.velocity.VelocityContext;

import java.util.List;

public interface IPrepareHtmlDataService {

    /**
     * 普通数据
     *
     * @param fileGenInfo 文件创信息
     * @return {@link VelocityContext}
     */
    VelocityContext prepareContext(FileGenInfo fileGenInfo);

    /**
     * 分页数据
     *
     * @param fileGenInfo 文件创信息
     * @return {@link List}<{@link VelocityContext}>
     */
    List<VelocityContext> prepareContextList(FileGenInfo fileGenInfo);

    /**
     * 获取页面类型枚举
     *
     * @return {@link HtmlPageTypeEnum}
     */
    HtmlPageTypeEnum getPageTypeEnum();

    /**
     * businessId 这个参数是否有有用
     * 对于不需要的页面是无用的 例如 index/about/support/contact etc...  false
     * 对于需要特定参数的页面是有用的 true
     *
     * @return boolean
     */
    boolean useBusinessId();

    /**
     * 是否会用到分页
     *
     * @return boolean
     */
    boolean usePage();

    /**
     * 对于需要businessId的页面
     * @see IPrepareHtmlDataService#useBusinessId()
     * 获取所有的businessId
     *
     * @return {@link List}<{@link String}>
     */
    public List<String> getAllBusinessIds();
}
